// ========== 库存选择器相关类型定义 ==========

// API响应中的原始库存数据结构
export interface RawStockData {
  objectId: string;
  name: string;
  // API可能返回的其他字段
  address?: string;
  sort?: number;
  isActive?: boolean;
  isDefault?: boolean;
  createdAt?: string;
  updatedAt?: string;
}

// 库存选择器选项类型
export interface StockOption {
  label: string;
  value: string;
  objectId: string;
  name: string;
  disabled?: boolean;
}

// 库存选择事件数据
export interface StockSelectEmitData {
  name: string;
  objectId: string;
}

// 库存选择器组件Props类型
export interface StockSelectorProps {
  /** 当前选中值 */
  modelValue?: string;
  /** 占位符文本 */
  placeholder?: string;
  /** 是否可清空 */
  allowClear?: boolean;
  /** 是否禁用 */
  disabled?: boolean;
  /** 尺寸 */
  size?: 'small' | 'medium' | 'large';
  /** 是否显示搜索 */
  showSearch?: boolean;
  /** 是否可筛选 */
  filterable?: boolean;
  /** 是否全宽度 */
  isFullWidth?: boolean;
}

// 库存选择器组件Emits类型
export interface StockSelectorEmits {
  (e: 'update:modelValue', value: string): void;
  (e: 'change', value: string, option?: StockOption): void;
  (e: 'selectStock', data: StockSelectEmitData): void;
}

// 库存API请求参数
export interface GetStockListParams {
  selectStocks?: string[] | boolean;
  searchText?: string;
}

// 库存API响应结构
export interface StockApiResponse {
  code: number;
  message?: string;
  data: RawStockData[];
  maxCount?: number;
  maxPage?: number;
}
